// 导入转base64模块的插件
import{
    enCoding
}from "../../utils/index.js"

import{
    Face_API_Key,
    Face_Secret_Key
}from "../api/key.config.js"

import{
    getFaceAccessToken,
    getFaceInfo
}from "../api/index.js"


// pages/faceInfo/faceInfo.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        // 存储拍摄图片变量
        tem_src:"",
        //特征点数组   
        landmark_arr:[],
        // 人脸框
        state:-1,
    },

    /**
     * 生命周期函数--监听页面加载
     */
    async onLoad(options) {
        // 检查有没有拿到拍摄图片信息
        // console.log(options);
        // 把拿到的图片信息存储起来
        this.setData({
            tem_src:options.tem_src
        })

        // 把临时的图片路径转成base64位，获取base64编码
        var base64 = await enCoding(options.tem_src);
        base64 =  base64.data;
        // console.log("以下位base63编码："+base64);


        // 接口数据地址
        // "https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=" + get_access_token()

        // 获取token密钥
        var token = await getFaceAccessToken(Face_API_Key,Face_Secret_Key);
        token = token.data.access_token;
        console.log(token);

        // 根据图片路径以及base64编码获取人脸的检测数据
        getFaceInfo(base64,token).then(res=>{
            console.log(res);
            if(res.data.error_code !=0){
                // 弹窗
                wx.showToast({
                    // 弹窗提示的文字
                  title: "错误！",
                    // 弹出提示图标
                  icon:"error",
                })
                // 打印错误信息
                // console.log(res.data);
            }else{
                // 打印人脸数据出来
                // 定义一个变量用于取出数据
                var faceInfo = res.data.result.face_list[0]
                // console.log(111,faceInfo);

                let{
                    // 本地状态
                    location,
                    // 年龄
                    age,
                    // 颜值
                    beauty,
                    // 情绪
                    emotion,
                    // 表情
                    expression,
                    // 轮廓
                    face_shape,
                    // 性别
                    gender,
                    // 人脸框
                    face_type,
                    // 特征点
                    landmark,
                    // 72特征点
                    landmark72,
                    // 150特征点
                    landmark150
                }=faceInfo;

                // 定义一个“150特征点”数组
                var array150 = [];
                // 把接口当中取出150特征
                for(var key in landmark150){
                    array150.push(landmark150[key]);
                }
                console.log(array150);

                this.setData({
                    location,
                    age,
                    beauty,
                    emotion,
                    expression,
                    face_shape,
                    gender,
                    face_type,
                    landmark_arr:[landmark,landmark72,landmark150]
                })
            }
        })

        // 计算人脸框比例
        // (小图的宽度为（320px) / 原图的宽度） = （小图的人脸图/原图人脸框） = 比例
        wx.getImageInfo({
          src: options.tem_src,
        }).then(res=>{
            console.log("原图的信息：",res);
            
            this.setData({
                scale: 280/res.width
            })
        })


    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})